/**
 * 沉积物任务
 */
export interface DpHarvestTask {
    /**
     * 任务 id
     */
    id: string
    /**
     * 沉积物 id
     */
    depositId: string
    /**
     * 沉积物位置，使用 serializePos 序列化
     */
    posStr: string
    /**
     * 沉积物种类
     */
    depositType: ResourceConstant
    /**
     * 上次采集的冷却时间
     */
    lastCooldown: number
    /**
     * 还有多少 tick 消失
     */
    ticksToDecay: number
    /**
     * 路程
     */
    distance?: number
    /**
     * 空闲位置
     */
    freePos: number
    /**
     * 矿工
     */
    harvesters: string[]
    /**
     * 搬运工
     */
    carriers: string[]
    /**
     * 任务是否已经完成
     */
    done?: boolean
    /**
     * 是否被打了
     */
    isDanger?: boolean
    /**
     * 被打多少之后的重启时间
     */
    restartTime?: number
}

export interface DpHarvestMemory {
    rooms: string[]
    tasks: DpHarvestTask[]
}

declare global {
    interface RoomMemory {
        dpHarvest: DpHarvestMemory
    }

    interface CreepMemory {
        _reached?: boolean
    }
}
